package com.repair.api.user.service;

import com.repair.api.user.request.*;
import com.repair.api.user.request.param.UserQueryParam;
import com.repair.api.user.request.param.UserUpdateStatusParam;
import com.repair.api.user.response.UserOperateResponse;
import com.repair.api.user.response.UserQueryResponse;
import com.repair.api.user.response.data.UserInfo;
import com.repair.base.response.NoResultResponse;
import com.repair.base.response.PageResponse;

/**
 * @author chunyu
 * @since 2024/9/21,14:38
 */
public interface UserFacadeService {

    /**
     * 查询用户
     * @param userQueryRequest 手机号或id
     * @return
     */
    UserQueryResponse<UserInfo> query(UserQueryRequest userQueryRequest);

    /**
     * 注册用户
     * @param userRegisterRequest
     * @return
     */
    UserOperateResponse register(UserRegisterRequest userRegisterRequest);

    /**
     * 登录
     * @param UserLoginStreamRequest
     * @return
     */
    UserOperateResponse loginStream(UserLoginStreamRequest<UserInfo> UserLoginStreamRequest);

    /**
     * 后台分页查询用户
     * @param queryParam
     * @return
     */
    PageResponse<UserInfo> getAllUsers(UserQueryPageRequest<UserQueryParam> queryParam);


    NoResultResponse updateUserStatus(UserUpdateStatusRequest<UserUpdateStatusParam> userUpdateRequest);

    /**
     * 禁用用户
     * @param request
     * @return
     */
    UserQueryResponse<Boolean> blockUser(UserBlockRequest request);

}
